ANÁLISE EXPLORATÓRIA DE DADOS

Autor

João Ricardo F. de Lima

Data de Publicação

23 de fevereiro de 2024


O que é Análise Exploratória de Dados?

A AED é um conjunto de métodos e ferramentas que o analista utiliza para descrever um determinado conjunto de dados, permitindo compreender o comportamento de diversas variáveis. Permite também solidificar uma base para criar hipóteses e modelos preditivos/causais.

Cada conjunto de dados se comporta de uma forma, portanto, cada método ou ferramenta se encaixa melhor em determinado dataset, enquanto em outros não, portanto, para saber diferenciar quais devem ser utilizadas é necessário um conjunto de conhecimento analítico e crítico.

E quais são os métodos e as ferramentas ? De quais formas podemos “entrevistar” nossos dados e retirar insights? Os meios mais importantes são:

  • Classificar os tipos dos dados das variáveis em categóricas ou quantitativas;
  • Sumarizar os dados utilizando estatísticas descritivas;
  • Visualizar os dados utilizando gráficos.

Classificação das variáveis

Cada variável possui um tipo de dado diferente, e que para cada tipo existe uma ferramenta adequada para a análise. A classificação destas variáveis é realizada de forma relativamente arbitrária, com um certo padrão na escolha destes tipos. Elas podem ser:

  • Categóricas: Assume valores que dizem respeito sobre a qualidade ou característica de cada observação. Os valores são não numéricos, como strings (caracteres) ou lógicos. É subdividido em binário, nominal e ordinal.

  • Binário: Assume apenas dois valores, normalmente como sim ou não; True ou False; 0 ou 1 ou qualquer outra característica de dois valores;

  • Nominal: Valores qualitativos que assumem mais de dois valores, como país, nome, espécie do pinguim, etc.

  • Ordinal: Valores qualitativos que assumem mais de dois valores e também possuem uma ordem intrínseca, como pequeno, médio, grande, dias da semana e etc.

  • Quantitativas: variáveis quantitativas são valores numéricos que dizem respeito a grandeza de uma variável. Assumem valores contínuos ou discretos.

  • Contínuo: em teoria, assumem uma distância não padrão entre uma observação e outra, bem como essa distância pode ser um número infinito de possíveis valores.

  • Discreto: assumem apenas valores fixos entre duas observações.

Estatística Descritiva

Estatística descritiva são números que sumarizam as características de um conjunto de dados. Através desses números, retira-se informações valiosas, sendo cruciais para o processo da analise exploratória de dados.

Os cálculos realizados para sumarizar os dados possuem classificações, separando-os em tipos de medidas.

  • Medidas de tendência central: responde sobre o que está no centro do dados, medidas importantes incluem a média, mediana e a moda
  • Medidas de variabilidade: responde sobre o quanto os dados estão dispersos, medidas importantes incluem a variância e o desvio padrão
  • Medidas de relacionamento: responde sobre a relação entre duas variáveis em um dataset, medidas importantes incluem a covariância e a correlação.

A sumarização dos cinco números consiste em um conjunto de estatísticas que dividem os dados em seções, permitindo compreender a distribuição dos dados:

  1. O valor mínimo do conjunto
  2. O 25° percentil ou primeiro quartil (Q1)
  3. A mediana (ou 50° percentil) e a Média
  4. O 75° percentil ou terceiro quartil (Q3)
  5. O valor máximo do conjunto
library(ggplot2)
library(dplyr)

economics |> 
  select(pop, unemploy) |> 
  summary()
      pop            unemploy    
 Min.   :198712   Min.   : 2685  
 1st Qu.:224896   1st Qu.: 6284  
 Median :253060   Median : 7494  
 Mean   :257160   Mean   : 7771  
 3rd Qu.:290291   3rd Qu.: 8686  
 Max.   :320402   Max.   :15352  

Visualização dos dados

A visualização de dados permite que possamos analisar facilmente os valores dos dados, sendo extremamente útil não somente para a etapa de exploração, mas também para a etapa de comunicação, devido a facilidade de entendimento do público pelo o que um gráfico está descrevendo.

Fonte: Análise Macro, 2022.

Tipos de gráficos

Comparação: são comuns para a representação de como um conjunto de dados se compara em diferentes categorias ou como se comporta em relação ao tempo, incluem gráficos de linhas e gráficos de barras ou colunas.

Distribuição: ajudam a entender a distribuição do conjunto de dados, são gráficos que auxiliam a entender as estatísticas descritivas, incluem gráficos de histograma, densidade e o boxplot.

Composição: permitem entender os dados como parte de um todo, incluem: gráficos de barras empilhados, gráficos de área (empilhados ou não) e gráficos de pizza.

Relacionamento: exibem a relação entre duas ou mais variáveis. Ajudam a entender as medidas de relacionamento da estatística descritiva, incluem gráficos de dispersão e de bolhas.

Exemplo de análise de dados

#Criando a primeira análise de dados com o R

### PACOTES

library(sidrar)
library(tidyverse)
### COLETA

ipca_raw <- sidrar::get_sidra(api = "/t/1737/n1/all/v/2265/p/all/d/v2265%202")

dplyr::glimpse(ipca_raw)
Rows: 530
Columns: 11
$ `Nível Territorial (Código)` <chr> "1", "1", "1", "1", "1", "1", "1", "1", "…
$ `Nível Territorial`          <chr> "Brasil", "Brasil", "Brasil", "Brasil", "…
$ `Unidade de Medida (Código)` <chr> "", "", "", "", "", "", "", "", "", "", "…
$ `Unidade de Medida`          <chr> "", "", "", "", "", "", "", "", "", "", "…
$ Valor                        <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
$ `Brasil (Código)`            <chr> "1", "1", "1", "1", "1", "1", "1", "1", "…
$ Brasil                       <chr> "Brasil", "Brasil", "Brasil", "Brasil", "…
$ `Variável (Código)`          <chr> "2265", "2265", "2265", "2265", "2265", "…
$ Variável                     <chr> "IPCA - Variação acumulada em 12 meses", …
$ `Mês (Código)`               <chr> "197912", "198001", "198002", "198003", "…
$ Mês                          <chr> "dezembro 1979", "janeiro 1980", "feverei…
### LIMPEZA

ipca <- ipca_raw |> 
    dplyr::select("data" = "Mês (Código)",
                  "ipca" = "Valor") |> 
    dplyr::mutate(data = lubridate::ym(data)) |> 
    dplyr::filter(data >= "2004-01-01") |> 
    dplyr::as_tibble()

Na análise exploratória, busca-se respostas para:

  • Como a inflação se comportou no Brasil?
  • Qual o período com menores e maiores taxas de inflação?
  • Qual o valor médio da inflação do Brasil e como é a distribuição de seus valores?
  • O que afeta a inflação? Com qual variável ela se relaciona?
### Análise Exploratória

# Gráfico de linha

ggplot2::ggplot(ipca)+
  ggplot2::aes(x = data, y = ipca)+
  ggplot2::geom_line()

# Os cinco números

summary(ipca)
      data                 ipca       
 Min.   :2004-01-01   Min.   : 1.880  
 1st Qu.:2009-01-01   1st Qu.: 4.310  
 Median :2014-01-01   Median : 5.600  
 Mean   :2013-12-31   Mean   : 5.774  
 3rd Qu.:2019-01-01   3rd Qu.: 6.700  
 Max.   :2024-01-01   Max.   :12.130  
# Gráfico boxplot

ggplot2::ggplot(ipca)+
  ggplot2::aes(y = ipca)+
  ggplot2::geom_boxplot()

# Gráfico de histograma

ggplot2::ggplot(ipca)+
  ggplot2::aes(x = ipca)+
  ggplot2::geom_histogram()

#### Taxa de desocupação 

desocupacao_raw <- sidrar::get_sidra(api = "/t/6381/n1/all/v/4099/p/all/d/v4099%201")

# Limpeza da desocupação

desocupacao <- desocupacao_raw |> 
  dplyr::select('data' = "Trimestre Móvel (Código)", "desocupacao" = "Valor") |> 
  dplyr::mutate(data = lubridate::ym(data)) |> 
  dplyr::as_tibble()

# Junta os dados

df_dados <- ipca |> 
  inner_join(desocupacao, by = "data")

# Compara os duas variáveis

df_dados |> 
  ggplot2::ggplot()+
  ggplot2::aes(x = data)+
  ggplot2::geom_line(aes(y = desocupacao, color = "Taxa de desocupação"))+
  ggplot2::geom_line(aes(y = ipca, color = "IPCA"))+
  ggplot2::scale_color_manual(values = c("#282f6b", "#b22200"))

# IPCA em função do desemprego

modelo_phillips <- lm(ipca ~ desocupacao, data = df_dados)


summary(modelo_phillips)

Call:
lm(formula = ipca ~ desocupacao, data = df_dados)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4537 -1.7254 -0.7005  1.6239  6.1742 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  8.46818    0.85327   9.924  < 2e-16 ***
desocupacao -0.23927    0.08027  -2.981  0.00339 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.481 on 140 degrees of freedom
Multiple R-squared:  0.05968,   Adjusted R-squared:  0.05297 
F-statistic: 8.886 on 1 and 140 DF,  p-value: 0.003389
# Gráfico de Dispersão

ggplot2::ggplot(df_dados, ggplot2::aes(x = desocupacao, y = ipca)) +
  ggplot2::geom_point()+
  geom_smooth(method = 'lm')